package com.lovo.javafxComponent;

import java.util.ArrayList;
import java.util.List;

import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.Pane;
import javafx.scene.text.Font;

/**
 * 单选框组件
 * @author lenovo
 *
 */
public class LovoRadioButton {
	/**单选框集合*/
	private List<RadioButton> radioList = new ArrayList<>();
	
	/**
	 * 单选框组件
	 * @param title 标题
	 * @param items 选项数组
	 * @param x X坐标
	 * @param y Y坐标
	 * @param container 加入容器
	 */
	public LovoRadioButton(String title, String[] items,int x,int y,Pane container) {
		Label label = new Label(title);
		label.setLayoutX(x);
		label.setLayoutY(y);
		label.setPrefWidth(100);
		label.setPrefHeight(20);
		label.setFont(new Font(16));
		container.getChildren().add(label);
		
		if(items == null || items.length ==0){
			return;
		}
		
		ToggleGroup group = new ToggleGroup();
		for(int i=0;i<items.length;i++){
			String info = items[i];
			RadioButton rb = new RadioButton(info);
			rb.setToggleGroup(group);
			rb.setLayoutX(x + 100 +i*80);
			rb.setLayoutY(y);
			rb.setPrefSize(60, 20);
			
			rb.setOnAction(e -> itemClick(info));
			radioList.add(rb);
			container.getChildren().add(rb);
		}
		radioList.get(0).setSelected(true);
		
	}

	/**
	 * 选项点击事件
	 * @param info 选中项文本
	 * @return 
	 */
	public void itemClick(String info) {}
	
	/**
	 * 得到选中项文本
	 * @return 选中项文本
	 */
	public String getItem() {
		for(RadioButton rb : radioList) {
			if(rb.isSelected()) {
				return rb.getText();
			}
		}
		return null;
	}

	/**
	 * 设置指定的文本对应的单选钮选中
	 * @param item 选项
	 */
	public void setItem(String item){
		for(RadioButton rb : this.radioList){
			if(rb.getText().equals(item)){
				rb.setSelected(true);
			}
		}
	}
}
